ফিচার এনকোডিং (Feature Encoding) হলো সেই প্রক্রিয়া, যেখানে ক্যাটেগোরিক্যাল (Categorical) ডেটাকে সংখ্যাগত (Numerical) আকারে রূপান্তর করা হয়, যাতে এটি মেশিন লার্নিং অ্যালগরিদম দ্বারা ব্যবহৃত হতে পারে। মেশিন লার্নিং মডেলগুলি সাধারণত শুধুমাত্র সংখ্যামূলক ডেটা প্রক্রিয়া করতে পারে, তাই ক্যাটেগোরিক্যাল ডেটা সঠিকভাবে এনকোড করা খুবই গুরুত্বপূর্ণ।
ফিচার এনকোডিং-এর দুটি জনপ্রিয় পদ্ধতি হলো:
- ওয়ান-হট এনকোডিং (One-Hot Encoding)
- লেবেল এনকোডিং (Label Encoding)
এই দুটি পদ্ধতি ব্যবহৃত হয় বিভিন্ন ধরনের ক্যাটেগোরিক্যাল ফিচারের জন্য। নিচে প্রতিটি পদ্ধতির বিস্তারিত ব্যাখ্যা দেয়া হলো।
১. ওয়ান-হট এনকোডিং (One-Hot Encoding)
ওয়ান-হট এনকোডিং হল একটি পদ্ধতি, যেখানে ক্যাটেগোরিক্যাল ভ্যালুকে বাইনারি (0 অথবা 1) ভ্যালুতে রূপান্তর করা হয়। প্রতিটি ক্যাটেগোরিক্যাল ভ্যালুর জন্য একটি নতুন কলাম তৈরি করা হয়, এবং যদি কোনো রেকর্ড সেই ক্যাটেগরি সম্পর্কিত হয়, তবে সেই কলামে '1' থাকবে, অন্যথায় '0' থাকবে।
উদাহরণ:
ধরা যাক, আমাদের একটি কলাম আছে যার নাম "Color" এবং এতে ৩টি ভ্যালু: "Red", "Green", এবং "Blue"।
| Color |
|---|
| Red |
| Green |
| Blue |
| Green |
| Red |
ওয়ান-হট এনকোডিং প্রয়োগ করার পর, এটি হবে:
| Color_Red | Color_Green | Color_Blue |
|---|---|---|
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
এখানে, "Red" এর জন্য Color_Red কলামে '1' এবং অন্য কলামগুলোতে '0' থাকবে, এবং একইভাবে অন্য ক্যাটেগোরি গুলোর জন্যও হবে।
সুবিধা:
- এই পদ্ধতিটি মডেলকে ভ্যালুর মধ্যে কোনো অর্ডার বা পার্থক্য দেখতে দেয় না, কারণ প্রতিটি ক্যাটেগোরি আলাদা কলামে রূপান্তরিত হয়।
অসুবিধা:
- যদি ক্যাটেগোরির সংখ্যা অনেক বড় হয় (যেমন হাজার হাজার ক্যাটেগোরি), তবে এটি অনেক বেশি ফিচার তৈরি করতে পারে, যা মডেলকে জটিল ও ধীর গতির করতে পারে।
২. লেবেল এনকোডিং (Label Encoding)
লেবেল এনকোডিং হল একটি পদ্ধতি যেখানে ক্যাটেগোরিক্যাল ভ্যালুগুলিকে একটি ইউনিক সংখ্যা দিয়ে রূপান্তর করা হয়। এখানে, প্রতিটি ভ্যালু একটি নির্দিষ্ট সংখ্যা দ্বারা প্রতিনিধিত্ব করা হয়। সাধারণত, এটি অর্ডারড বা রাঙ্কড ক্যাটেগোরি ফিচারের জন্য ব্যবহৃত হয়।
উদাহরণ:
ধরা যাক, আমাদের একই "Color" কলামটি আছে, যেখানে ভ্যালুগুলি "Red", "Green", এবং "Blue"। লেবেল এনকোডিং প্রয়োগ করার পর:
| Color | Encoded Color |
|---|---|
| Red | 0 |
| Green | 1 |
| Blue | 2 |
| Green | 1 |
| Red | 0 |
এখানে, "Red"-কে 0, "Green"-কে 1, এবং "Blue"-কে 2 দ্বারা প্রতিনিধিত্ব করা হয়েছে।
সুবিধা:
- লেবেল এনকোডিং সাধারণত কম স্পেস নেয়, কারণ এটি সংখ্যামূলক কোডের মাধ্যমে প্রতিটি ক্যাটেগোরি প্রতিনিধিত্ব করে।
অসুবিধা:
- এটি ব্যবহারের ক্ষেত্রে যদি ক্যাটেগোরিগুলোর মধ্যে কোন প্রাকৃতিক অর্ডার না থাকে, তবে মডেলটি ভুলভাবে তাদের মধ্যে সম্পর্ক গড়ে তুলতে পারে। উদাহরণস্বরূপ, এখানে "Red" (0), "Green" (1), এবং "Blue" (2) এর মধ্যে কোনো স্বাভাবিক ক্রম নেই, কিন্তু লেবেল এনকোডিং মডেলটি এগুলোর মধ্যে একটি নির্দিষ্ট রাঙ্কিং বা ক্রম অনুমান করতে পারে, যা ভুল ফলাফল দিতে পারে।
সারসংক্ষেপ (Summary)
| পদ্ধতি | বিবরণ | সুবিধা | অসুবিধা |
|---|---|---|---|
| ওয়ান-হট এনকোডিং | প্রতিটি ক্যাটেগরি ভ্যালুর জন্য একটি নতুন কলাম তৈরি করে, এবং সেখানে '1' বা '0' থাকবে। | ক্যাটেগোরি মধ্যে কোন অর্ডার বা পার্থক্য ধরা হয় না, সঠিক মডেল প্রশিক্ষণ। | অনেক ক্যাটেগরি থাকলে অনেক ফিচার তৈরি হতে পারে, যা মডেলকে ধীর করে তুলতে পারে। |
| লেবেল এনকোডিং | প্রতিটি ক্যাটেগরি ভ্যালুকে একটি ইউনিক সংখ্যা দিয়ে এনকোড করা হয়। | কম স্পেস নেয় এবং দ্রুত মডেল প্রশিক্ষণ। | অর্ডারড ক্যাটেগরি না থাকলে মডেল ভুলভাবে সম্পর্ক নির্ধারণ করতে পারে। |
প্রত্যেক পদ্ধতির নিজস্ব সুবিধা এবং অসুবিধা আছে, এবং আপনার ডেটার ধরণ এবং মডেলিং উদ্দেশ্যের ওপর ভিত্তি করে সঠিক পদ্ধতি নির্বাচন করা উচিত।
Read more